#ifndef PLCENUMDECLSYMBOL_H
#define PLCENUMDECLSYMBOL_H

#include <vector>

#include "plc2llvm/PLCSymbols/PLCTypeDeclSymbol.h"
#include "plc2llvm/PLCSymbols/PLCEnumConst.h"

class PLCEnumConst;

class PLCEnumDeclSymbol : public PLCTypeDeclSymbol {
private:
    //枚举常量
    std::vector<PLCEnumConst*> enumConsts;
    //枚举常量的类型id
    int enumConstTypeId;
    //枚举类型的默认值
    PLCEnumConst* defaultEnumConst;

public:
    const std::vector<PLCEnumConst *> &getEnumConsts() const;

    void addEnumConst(PLCEnumConst* enumConst);

    int getEnumConstTypeId() const;

    void setEnumConstTypeId(int enumConstTypeId);

    PLCEnumConst *getDefaultEnumConst() const;

    void setDefaultEnumConst(PLCEnumConst *defaultEnumConst);
};


#endif
